草庐IT

php - create_function 而不是 lambda 函数 avartaco

全部标签

c# - 为什么默认枚举值是 0 而不是最小值?

在C#中将“0”作为枚举的默认值有什么意义?如果我声明以不同数字开头的枚举:enumColor{Blue=1,Green,Red,}然后varcolor=default(Color)-将返回“0”。我希望看到最小值。如果枚举的每个成员都对应于某个特定数字并且“0”不是有效值,则此行为可能会导致问题。 最佳答案 所有值类型(包括枚举)的默认值都是按位0。因此这意味着0始终是枚举的可能值,即使它没有明确定义也是如此。这是规范:Defaultvaluestable编辑:有关枚举类型的更多详细信息,请查看MSDN-enumenum是一种特殊

c# - 如何捕获 lambda 表达式中外部变量的值?

我刚刚遇到了以下行为:for(vari=0;i{Debug.Print("Error:"+i.ToString());});}会导致一系列“错误:x”,其中大部分x等于50。类似地:vara="Before";vartask=newTask(()=>Debug.Print("Usingvalue:"+a));a="After";task.Start();将导致“使用值:之后”。这显然意味着lambda表达式中的串联不会立即发生。在声明表达式时,如何在lambda表达式中使用外部变量的副本?以下不会更好地工作(这不一定是不连贯的,我承认):vara="Before";vartask=ne

c# - 如何将 lambda 表达式传递给 WCF 服务?

我当前的项目使用的是IDesign架构,所以我所有的层都是服务。我想让资源访问层的CRUD中的Read方法采用lambda表达式形式的谓词以及要提取的相关对象列表。这样资源访问层就会非常通用。[OperationContract]ResultReadObjects(Funcpredicate,string[]includes);现在我发现了一些本来应该很明显的事情,那就是我无法序列化lambda表达式。我研究过将字符串解析为lambda表达式,但这也是行不通的。有什么方法可以用来将lambda表达式传递给服务吗?有没有更好的方法来完成我想做的事情? 最佳答案

c# - lambda表达式和方法组的区别

有什么区别Class1.Method1("cId",Facade.Customers.GetSingle);和Class1.Method1("cId",x=>Facade.Customers.GetSingle(x));?Resharper建议使用第一个表达式。 最佳答案 结果没有区别。然而,第二个创建了一个额外的重定向:代码将首先调用你的匿名方法,它接受一个名为x的参数,然后调用Facade.Customers.GetSingle范围。这种重定向根本没有任何好处,这就是ReSharper告诉您使用第一个替代方案的原因。

C# ToDictionary lambda 选择索引和元素?

我有一个像stringstrn="abcdefghjiklmnopqrstuvwxyz"这样的字符串,并且想要一个像这样的字典:Dictionary(){{'a',0},{'b',1},{'c',2},...}我一直在尝试类似的事情strn.ToDictionary((x,i)=>x,(x,i)=>i);...但是我一直收到关于委托(delegate)不接受两个参数、未指定参数等的各种错误。我做错了什么?我更喜欢提示而不是答案,这样我就可以清楚地知道下次我需要做什么,但根据Stackoverflow的性质,答案也很好。 最佳答案 首

C# Action lambda 限制

为什么这个lambda表达式不能编译?Actiona=()=>thrownewInvalidOperationException();猜想很好,但我非常感谢对C#语言规范或其他文档的引用。是的,我知道以下内容是有效的并且可以编译:Actiona=()=>{thrownewInvalidOperationException();};thisblogpost中描述了我将使用类似内容的上下文. 最佳答案 嗯。我有一个答案,但不是很好。我不相信有“throw”表达式。有一个throw语句,但不仅仅是一个表达式。将其与“Console.Wri

c# - WP 8.1 运行时代码,用于调用电话、发送短信和发送电子邮件(不是 Silverlight 8.1)

我正在编写一个可以调用电话、发送短信或电子邮件的应用程序,就像wp8.1中的People应用程序一样。到目前为止,我已经找到了一个链接表单msdn,上面写着“适用于:WindowsPhone8和WindowsPhoneSilverlight8.1”。所以这里的代码:fromthislinkusingMicrosoft.Phone.Tasks;privatevoidTextBlock_Tapped_Call(objectsender,TappedRoutedEventArgse){PhoneCallTaskphoneCallTask=newPhoneCallTask();phoneCal

c# - true 而不是 True (C#)

目标从Controller到View返回true而不是True。问题我将一个bool值存储到变量中,该bool值指示购物车/摘要中是否存在产品。为此,我正在执行以下操作:[...]IsAdded=sessionStore.CheckExistanceOnSummary(product.productId)[...]但是,当我在View上显示IsAdded的值时,返回值是True或False—JavaScript期望true或false。我需要的是发送true或false而不是C#发送的这种方式。我已经尝试过的我已经尝试将上面的代码片段更改为:IsAdded=(sessionStore.

c# - 如何判断一个文件是不是exe?

我如何确定传递给我程序的文件是有效的exe文件?实际上我的程序将一个文件作为输入并运行它,但是用户可以输入任何文件所以我必须确保输入是一个有效的exe。 最佳答案 如果您想要比“文件名是否以‘.exe’结尾?”更深入的内容但您不想实际运行该程序,您可以检查PEheader的存在和有效性。此外,检查前2个字节(PE文件的“MZ”)也将为DLL返回true。如果您不想这样,可以尝试这种方法。MattPietrek撰写了几篇描述PE格式的精彩文章:PeeringInsidethePE:ATouroftheWin32PortableExec

c# - 为什么使用类级访问修饰符而不是对象级?

在使用C#时,我最近意识到我可以调用Foo对象的私有(private)函数来自Foo的静态函数,甚至来自其他Foo对象。在了解了所有关于访问修饰符的知识之后,这对我来说听起来很奇怪。据我所知,当函数执行属于某种内部流程的一部分时,您将函数设为私有(private)。只有对象本身知道何时使用这些函数,因为其他对象不应该/不能控制对象的流程。是否有任何理由可以将同一类的其他对象排除在这个非常简单的规则之外?根据要求,一个例子:publicclassAClass{privatevoiddoSomething(){/*Dosomethinghere*/}publicvoidaFunction(